'''
本函数功能：存储存文件
参数（三个参数）：
    1. 上传的文件 file
    2. 上传的路径 path
    3. 命名方式 type
'''

from django.conf import settings
from datetime import datetime
import random
import uuid

def get_file_name_random_date:
    filename = datetime.now().strftime("%Y-%m-%d").replace("-","")
    filename += str(random.randint(1000,9999))
    return filename


def update_file(file,path:str,type:int):
    '''
    参数（三个参数）：
    1. 上传的文件 file
    2. 上传的路径 path
    3. 命名方式 type
    '''
    new_name = ''
    # 判断类型
    if type == 1:
        new_name = get_file_name_random_date()
    elif type == 2:
        new_name = uuid.uuid4().hex

    # 拼接路径
    file_path = settings.MEDIA_ROOT + os.path.sep + path + os.path.sep + new_name + os.path.splitext(file.name)[1]
    # 开始写入
    try:
        f = open(file_name,'web')
        # 分多次写入
        for i in file.chunks():
            f.write(i)
        # 关闭
        f.close()

        # 返回
        return {'status':True,'data':new_name + os.path.splitext(file.name)[1] + os.path.sep+'文件写入成功！'}
    except Exception e:
        return {'status':False,'error':'文件写入磁盘出现异常！'}